VIDEOH is a video player application with educational purposes. The aim is to develop a platform application where teachers can upload video lessons and students can watch them in an interactive way. 
Mainly, our application provides a video player for students and some interactive elements that allow them to specify if an argument was clear or not, to ask a question directly to the professor and match it to a specific part of the video lesson.

Programming models, languages and Toolkit
Our application is developed using Java programming language, Jakarta persistence API  for database connectivity, vlcj Library for video support and Java Swing as Toolkit.

Overall Architecture and Code structure
Our application runs inside a single JFrame. It is instantiated by the Main class and all the required actions to display each scene are managed by a SceneManager instance. 
This instance is responsible for displaying the correct Scene instance at any time, exploiting CardLayouts to switch between views
Library used: specifications
The core functionality of our app is “playing videos”. We didn’t expect that Java Swing doesn’t have any native Object to manage MediaFile; so to embed this feature in our app we relied on an external library: vlcj. This library allows the application that uses it to embed a native VLC media player: this also means that VLC must be installed on the machine that launches Videoh.
This library works almost fine everywhere, except on MacOS since, starting from Java 1.7, “on macOS, there is no longer any "heavyweight" window toolkit, everything is lightweight. This is a problem because VLC requires the window handle of a heavyweight window so it can be told where to render the video into.” What this means in practice is that the EmbeddedMediaPlayerComponent (that is the object that takes care of all the video rendering) doesn’t work on any Java version later than 1.6 on macOS, so we needed to build our own DirectMediaPlayerComponent. This made things a little bit harder, since both of us use MacOS. 
Our implementation is based on what we found on the vlcj official website and is well documented within our project.

Rights
This is an original work by Federica Bucchieri and Andrew Amato from University Paris Saclay. It is deliberately inspired by Evoli, a project developed by the IT team of Politecnico di Milano.
Videoh
Published:

Owner

Videoh

Published:

Creative Fields